package com.tsyun.view_project.recycler;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;

import com.tsyun.view_project.R;
import com.tsyun.view_project.list.bean.DynamicBean;
import com.tsyun.view_project.recycler.adapter.SampleAdapter;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

public class RecyclerActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    //适配器
    private SampleAdapter sampleAdapter;
    private Button btnAdd;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_recycler);
        recyclerView = findViewById(R.id.rv_sample);
        btnAdd = findViewById(R.id.btn_add);
//        View view = LayoutInflater.from(this).inflate(R.layout.item_sample,null);
        RecyclerView rvPics = findViewById(R.id.rv_pics);


        List<DynamicBean> dynamicBeans = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            DynamicBean dynamicBean = new DynamicBean();
            dynamicBean.setName("测试"+i);
            dynamicBean.setHeadPic("https://preview.shejiku123.com/thumbnail/10121/1000/1033951.jpg");
            Date date = Calendar.getInstance().getTime();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String dStr = format.format(date);
            dynamicBean.setDate(dStr);
            dynamicBean.setContent("速写钢笔画阿王风景建筑速写，纯艺术，速写，阿王速写，原创作品 站酷网，中国设计师互动平台。 站酷 - 。 现代建筑速写是比较难画的一个对象，建议刚开始画的时候可以临摹一些优秀的现代建筑速写图片，以便上手，今天分享一组现代建筑速写高清作品集，喜欢可以收藏临摹哦！ 。 建筑速写 卢国新原创作品_国新手绘_新浪博客，国新手绘， 建筑画 建筑速写 手绘 文化 写生 马克笔写生 艺术赏析 以上网友发言只代表其个人观点，不代表新浪网的观点或立场。 建筑速写入门_简单建筑速写入门图建筑速写与建筑手绘的区别 建筑速写手绘夏克梁建筑钢笔速写_建筑钢笔速写_夏克梁_夏克梁乡村简单建筑速写入门图 。");
            dynamicBeans.add(dynamicBean);
        }
        sampleAdapter = new SampleAdapter(this,dynamicBeans);
        //必须设置，否则不会显示视图 设置布局管理器
        //线性布局管理器 第一个参数：上下文对象 第二个参数：排序方式（RecyclerView.VERTICAL 垂直排序 RecyclerView.Horizontal 水平排序）
        //new LinearLayoutManager(this,RecyclerView.VERTICAL,true)
        //流式布局 StaggeredGridLayoutManager;
        // 网格布局 new GridLayoutManager(this,2)
        recyclerView.setLayoutManager(new LinearLayoutManager(this,RecyclerView.VERTICAL,false));
        //滑动监听 滑动到哪个位置
        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                super.onScrollStateChanged(recyclerView, newState);
                //监听滑动的状态
                if (newState==RecyclerView.SCROLL_STATE_IDLE){//停止滑动的时候 再进行Glide或者其他图片库的图片加载

                }
            }

            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                //已经完成滑动的时候，滑动的距离 dx，水平方向的滑动距离 dy,垂直方向上的滑动距离
            }
        });
        recyclerView.setAdapter(sampleAdapter);
        btnAdd.setOnClickListener(v->{
            DynamicBean dynamicBean = new DynamicBean();
            dynamicBean.setName("测试添加数据");
            dynamicBean.setHeadPic("https://preview.shejiku123.com/thumbnail/10121/1000/1033951.jpg");
            Date date = Calendar.getInstance().getTime();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            String dStr = format.format(date);
            dynamicBean.setDate(dStr);
            dynamicBean.setContent("速写钢笔画阿王风景建筑速写，纯艺术，速写，阿王速写，原创作品 站酷网，中国设计师互动平台。 站酷 - 。 现代建筑速写是比较难画的一个对象，建议刚开始画的时候可以临摹一些优秀的现代建筑速写图片，以便上手，今天分享一组现代建筑速写高清作品集，喜欢可以收藏临摹哦！ 。 建筑速写 卢国新原创作品_国新手绘_新浪博客，国新手绘， 建筑画 建筑速写 手绘 文化 写生 马克笔写生 艺术赏析 以上网友发言只代表其个人观点，不代表新浪网的观点或立场。 建筑速写入门_简单建筑速写入门图建筑速写与建筑手绘的区别 建筑速写手绘夏克梁建筑钢笔速写_建筑钢笔速写_夏克梁_夏克梁乡村简单建筑速写入门图 。");
            dynamicBeans.add(10,dynamicBean);
            sampleAdapter.notifyItemInserted(10);
        });
        //notifyItemInserted(position)不会对源数据UI产生界面混乱
        //notifyItemRemoved(position)如果移除的是最后一个元素，则不需要做任何操作,如果移除的是
        //中间某部分的数据，则需要调用notifyItemRangeChanged(startPosition,notifyCount)第一个值是数据开始改变的位置，第二个值是数据改变的多少
        //notifyItemRangeRemoved(positionStart,itemCount)删除某一区域范围内的数据
        //删除中间某部分的数据，则需要调用notifyItemRangeChanged(startPosition,notifyCount)第一个值是数据开始改变的位置，第二个值是数据改变的多少
        getWebData();

    }

    private void getWebData() {
        //在子线程中，请求数据，请求结束后，在用sampleAdapter.setBeans()方法设置数据源（注意，要在UI线程中更新）
//        sampleAdapter.setBeans(new ArrayList<>());
    }
}
